<?php
/*

*/

  /* ============================
    Liste des variables attendues
   ------------------------------
     POST ACTION_UTILISATEUR    = ADD|MOD|DEL
     POST LOGIN_UTILISATEUR     = string
     POST PASSWORD_UTILISATEUR  = password
     POST PASSWORD_UTILISATEUR2 = password
     POST PRENOM_UTILISATEUR    = string
     POST NOM_UTILISATEUR       = string
   =========================== */

$action = (!empty($_POST['ACTION_UTILISATEUR']))    ? cleanVar($_POST['ACTION_UTILISATEUR'])    : null;
$login  = (!empty($_POST['LOGIN_UTILISATEUR']))     ? cleanVar($_POST['LOGIN_UTILISATEUR'])     : null;
$pass   = (!empty($_POST['PASSWORD_UTILISATEUR']))  ? cleanVar($_POST['PASSWORD_UTILISATEUR'])  : null;
$pass2  = (!empty($_POST['PASSWORD2_UTILISATEUR'])) ? cleanVar($_POST['PASSWORD2_UTILISATEUR']) : null;
$prenom = (!empty($_POST['PRENOM_UTILISATEUR']))    ? cleanVar($_POST['PRENOM_UTILISATEUR'])    : null;
$nom    = (!empty($_POST['NOM_UTILISATEUR']))       ? cleanVar($_POST['NOM_UTILISATEUR'])       : null;
$mail   = (!empty($_POST['MAIL_UTILISATEUR']))      ? cleanVar($_POST['MAIL_UTILISATEUR'])      : null;

$admin     = (bool)$_SESSION['IS_ADMIN'];
$nbrAction = 0;

try
{
  // DROITS: si il est identifié et que c'est pas une inscription
  if(!isset($_SESSION['IDENTIFICATION_OK']) && $action != 'ADD')
    {
      throw new ListerException(202);
    }

  if(is_null($login) || is_null($action))
    {
      throw new ListerException(15);
    }

  $utilisateur = new Utilisateur($login, $pass, $prenom, $nom, $mail);
  
  // ajouter utilisateur
  if($action == 'ADD' && !is_null($nom) && !is_null($prenom) && !is_null($pass) && !is_null($mail))
    {
      // DROITS: ajouter un utilisateur: si il est admin => MAJ tout le monde
      if(false)//!$admin)
	{
	  throw new ListerException(213);
	}

      if($pass != $pass2)
	{
	  throw new ListerException(16);
	}
	
	if(strlen($pass) < 6)
     	{
	  throw new ListerException(161);
	}
	
      $utilisateur->enregistrer();
      $nbrAction++;
    }
  
  // modifier utilisateur
  if($action == 'MOD' && (!is_null($nom) || !is_null($prenom) || !is_null($pass) && !is_null($mail)))
    { 
      // DROITS: modifier un utilisateur: si c'est lui ou si il est admin
      if(!$admin && $_SESSION['login'] != $login)
	{
	  throw new ListerEception(214);
	}

      if($pass != $pass2)
	{
	  throw new ListerException(16);
	}
      
      $utilisateur->maj($login, $pass, $prenom, $nom, $mail, $isAdmin);
      $nbrAction++;
    }
  
  // supprimer l'utilisateur
  if($action == 'DEL')
    {
      // DROITS: supprimer un utilisateur: si il est admin
      if(!$admin)
	{
	  throw new ListerException(213);
	}

      $utilisateur->supprimer();
      $nbrAction++;
    }

  if($nbrAction == 0) throw new ListerException(15);

  $ok = true;
  $template->assign_vars(array('OK' => 'ok'));
  $template->assign_vars(array('NOMBRE_ACTION' => $nbrAction));
  $template->assign_vars($utilisateur->returnArray());
}
catch(ListerException $e)
{
  $template->assign_vars($e->returnArray());
  $template->assign_vars(array('OK'  => 'err'));
}

?>
